home *** CD-ROM | disk | FTP | other *** search
- // -----------------------------------------------------------------------------------------
- // general string/table functions
- // -----------------------------------------------------------------------------------------
-
- class ParseString {
-
- int instanceId; // unique debug id
- char *parseList; // char buffer
- char **parseTable; // parsed table
-
- public:
-
- /* constructors */
- ParseString(); // "empty" constructor
- ParseString(const ParseString &other); // "copy" constructor
- ParseString(const char *list); // init from list
- ParseString(const char *list1, const char *list2); // init from 2 lists
-
- /* destructor: should always be declared "virtual" */
- virtual ~ParseString();
-
- ParseString &operator<<=(const char *fileName); // copy fro file
- ParseString &operator=(const ParseString &other); // copy from other
- ParseString &operator=(const char *list); // copy from string
- ParseString &operator+=(const ParseString &second); // append other to self
- ParseString &operator+=(const char *list); // append list to self
- ParseString operator+(const ParseString &second) const; // append to second
- ParseString operator+(const char *list) const; // append to list
- ParseString &operator|=(const ParseString &second); // merge second with self
- ParseString &operator|=(const char *list); // merge list with self
- ParseString operator|(const ParseString &second) const; // merge with second
- ParseString operator|(const char *list) const; // merge with list
- char * &operator[](int ndx) const; // reference item in table
- int operator()(const char *item) const; // return index to item
-
- void print() const; // print contents
- char **table() const; // return pointer to table
- int count() const; // return number of items
- int unparsedLength() const; // return length of list
- char *getUnparsedList(char *list, int listLen) const; // copy unparsed list into buffer
- char *newUnparsedList() const; // return new unparsed list
- char *entryAt(int ndx) const; // return item at index
- int indexTo(const char *entry) const; // return index to item
-
- virtual int _sortCompare(char *p, char *q) const; // sorting criteria
- int sort(int order = 0); // sort table (0 == ascending)
-
- private:
-
- void _clean();
- char *_concatLists(const char *list1, const char *list2);
- char ** _parseList(char *list);
- int _unparsedLength(const char **tbl) const;
- char *_unparseList(char **tbl, char *list, int listLen) const;
- char *_newUnparsedList(char **tbl) const;
-
- };